package com.sy.mapper;

import com.sy.entity.Question;
import com.sy.vo.AnswerVo;
import com.sy.vo.QuestionAndTno;
import com.sy.vo.StuAndTnoVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author:fma
 * @Date: 2021/10/15 10:33
 */
public interface QuestionMapper {

    /**
     * 根据学生学号返回相应的数据
     *
     * @param sno 当前学生的学号
     * @return 问题的全部信息
     */
    List<Question> getQuestionBySno(Integer sno);

    /**
     * 根据学生学号返回相应的数据
     *
     * @param stuAndTnoVo 学生和教师的关联数据
     * @return 问题的全部信息
     */
    List<Question> getQuestionByTno(StuAndTnoVo stuAndTnoVo);

    /**
     * 根据学生学号返回相应的数据
     *
     * @param stuAndTnoVo 学生和教师的关联数据
     * @return 问题的全部信息
     */
    List<Question> getQuestionByName(StuAndTnoVo stuAndTnoVo);

    /**
     * 根据学生学号返回相应的数据
     *
     * @param tnos 教师的的总编号
     * @return 问题的全部信息
     */
    List<Question> getQuestionsLikeName(@Param("tnos") List<Integer> tnos);

    /**
     * 根据学生学号返回相应的数据
     *
     * @param tno 教师的的编号
     * @return 问题的信息
     */
    Question getQuestionsByTno(Integer tno);

    /**
     * 根据学生学号返回相应的数据
     *
     * @param questionAndTno 问题和教师的关联模型
     * @return 问题的信息
     */
    List<Question> getQuestionByTnos(QuestionAndTno questionAndTno);

    /**
     * 插入问题
     * @param question 问题
     * @return 是否插入成功
     */
    boolean addQuestion(Question question);
    /**
     * 添加回复问题
     * @param answerVo 问题
     * @return 是否插入成功
     */
    Boolean addReply(AnswerVo answerVo);
    /**
     * 获取问题
     * @param tno 教师编号
     * @return 所有的问题的信息
     */
    List<Question> getQuestionsAndReplyByTno(Integer tno);
    /**
     * 获取问题
     * @param tno 教师编号
     * @return 所有的问题的总数
     */
    Integer CountQuestionByTno(Integer tno);
}
